home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 426-450 / disk_436 / berserker / berserker.doc < prev    next >
Text File  |  1992-05-06  |  18KB  |  476 lines

  1. ==============================================================================
  2.  
  3.                           B E R S E R K E R  5.01
  4.                           +++++++++++++++++++++++
  5.  
  6.                © Copyright 1988, 1989, 1990 by Ralf Thanner
  7.  
  8.    The code is entirely written in assembler for the Kuma Seka assembler
  9.  
  10. ==============================================================================
  11.  
  12.  
  13.      REVISION HISTORY:
  14.      =================
  15.  
  16.  
  17.    R    V1.0    - Just a primitive SCA finder and killer.
  18.  
  19.    R    V1.c    - Added Byte Bandit & Byte Warrior killer.
  20.          - Improved SCA & SCA mutants killer routine.
  21.           -> OBELISK, AEK, LSD, PENTAGON, BAMIGA SECTOR ONE,
  22.               WARHWAK, MICROMASTER & NORTHSTAR...
  23.  
  24.    R    V2.b    - finds the Exterminator ( LAMER ).
  25.  
  26.    R    V2.d    - finds the first link virus ( IRQ TEAM 41 ).
  27.  
  28.      V2.e    - Added alert box. Idea by Olaf Barthel.
  29.          - Some cleanups and bug-fixes done.
  30.  
  31.    R    V2.e+    - Doesn't refuse to work with Kick 1.3 any more.
  32.          - Added custom bootblock writer.
  33.          - Added kill cold-cool vectors;
  34.            There are just too many SCA clones on the market
  35.            and it is saver to clear these pointers.
  36.  
  37.    R    V3.0    - Now also finds the BSG 9 link virus.
  38.          - Second ( and final? ) code cleanup for public
  39.            release
  40.          - Removed the custom bootblock writer, too many guys
  41.            thought Berserker to be some kind of virus in
  42.            disguise.
  43.  
  44.    R    V3.0+    - Extended to find Gaddafi and Disk-Doctor viruses.
  45.  
  46.      V3.1    - Extended to find the REVENGE BOOTLOADER virus.
  47.            -> THIS IS A NEW ONE!!!
  48.          - Bug-fix in EXTERMINATOR routine.
  49.            -> should find ALL lamer versions now...
  50.          - Code cleanup ( added some subroutines ).
  51.  
  52.      V3.2    - Extended to find REVENGE (an old one, but some
  53.            nice guys told me that Berserker should also find
  54.            the old ones ... and because Berserker crashed when
  55.            memory was infiltrated by REVENGE )
  56.  
  57.      V3.2b   - Shortened, sped up & cleaned up the code.
  58.            ( and Berserker still works! )
  59.  
  60.    R    V3.39c+ - JOKE....
  61.  
  62.      V3.5    - Added Xeno 'killer' routine by STEVE TIBBET.
  63.  
  64.      V4.0    - Added a friendlier CLI-interface and an option
  65.            to start Berserker from Workbench.
  66.  
  67.    R    V4.0a    - WHAAA, what a pity: forgot to call ReplyMsg..
  68.            Bug now fixed... Thanks to Olaf for this hint.
  69.          - Shortened and improved code again.
  70.  
  71.      V4.0b    - Threw the 'led switch off' out.
  72.          - Made the cold/cool capture killer optional. 
  73.            Hello Martin, yes, only for you...
  74.          - Shortened and improved code again & again....
  75.  
  76.    R    V4.0c    - AARGH!!! A new link virus: Disaster Master V2.
  77.  
  78.    R    V4.0d   - CENTURION LINK VIRUS killer implemented.
  79.          - Implemented a resident library checker.
  80.          - From now on the source contains only the
  81.            'virus-killing-part'.
  82.  
  83.    R    V4.1    - these fucking ass....., in the last two weeks
  84.            I got three new file/link viruses, and this is
  85.            even one of the best programmed viruses I ever
  86.            saw: The Traveling JACK... What chance has
  87.            a 'Traveling Jack' against a Berserker??? None...
  88.          - OLSEN found out that 'Berserker' crashed on
  89.            Kick 2.0. Now checks the Kickstart version.
  90.           That's not my fault, most viruses will crash, too.
  91.          - From now on source contains everything.
  92.            ( some people didn't like it the other way ) 
  93.          - Removed 'math.lib' check. A virus in math.lib?? NAAA...
  94.  
  95.    R    V5.0    - improved 'Traveling Jack' searcher (now finds the
  96.           mutant version.
  97.         - Added a permanent handler. ( read description below )
  98.         - Removed 'dos.library' check. My kind of checking doesn't
  99.           work correctly with dos.library. ( doesn't find any change )
  100.         - Takes care of NTSC screens when printing the CLI
  101.           instructions.
  102.         - BIG code-cleanup.
  103.           This cleanup was a REAL one: Berserker has become shorter,
  104.           faster and (keep your fingers crossed) bug-free...
  105.           also changed the way I jump into dos.library from 'A5'
  106.             into 'A6'. ( less problems with future Kickstarts ) 
  107.           to be honest, I changed most of the routines...
  108.         - New Workbench design. ( uses gadgets )
  109.         - Full instructions from workbench.
  110.         - Source contains only the last revision description.
  111.         - NO german.docs any more! ( it's not too difficult to under-
  112.           stand the english docs... )
  113.  
  114.    R    V5.01    - Fine tuning ( cli-instructions with 'RETURN' and Workbench
  115.           instructions with 'LEFT M.B.' )
  116.         - New handler version -> V1.4
  117.  
  118.    R    V5.02    - Once again fine tuning.
  119.           CLI PARAMETER CHECK recognizes TAB's now.
  120.         - New handler version -> V1.5
  121.  
  122.  
  123.    R = released version        release date:    22.11.90
  124.   
  125.    Berserker is now: 7892 bytes long. (not crunched!)
  126.  
  127. ==============================================================================
  128. ==============================================================================
  129.  
  130.                           Berserker-Handler V1.5
  131.                           ++++++++++++++++++++++
  132.  
  133.                      © Copyright 1990 by Ralf Thanner
  134.  
  135.    The code is entirely written in assembler for the Kuma Seka assembler
  136.  
  137. ==============================================================================
  138.  
  139.  
  140.      REVISION HISTORY:
  141.      =================
  142.  
  143.        V1.0    - finds and destroys  the two link-viruses 'Traveling
  144.           Jack' and 'Centurion'.
  145.  
  146.    R    V1.1    - reprogrammed the whole handler which is now absolutely
  147.           system friendly. ( launch the handler and use XOPER
  148.           to see what I mean! )
  149.         - If you start 'Berserker-Handler', it prints
  150.           it's revision number.
  151.         - Handler should be waterproof... ( I HOPE! )
  152.  
  153.    R    V1.2    - improved 'Traveling Jack' searcher.
  154.           -> now finds the mutant version.
  155.  
  156.        V1.3    - Removed a big bug ( was it my fault or COMMODORE's ???  )
  157.           when the interrupt server was installed, all other servers
  158.           running with same priority ( like the Imploder crunch bars
  159.           or NoisePlayer's play routine ) didn't work.  Changed
  160.           priority to '-2'.
  161.  
  162.         - Also changed the check-rate.  ( older versions checked every
  163.           frame )
  164.  
  165.    R    V1.4    - Bumped priority to '-126' since 'BAD' had a priority
  166.           of '-60' which caused it to hang.
  167.  
  168.    R    V1.5    - changed task priority.
  169.  
  170.  
  171.    R = released version
  172.   
  173.    Berserker-Handler is now: 884 bytes long.  ( don't crunch! )
  174.                             -------------    
  175.  
  176. ==============================================================================
  177.  
  178.                          WHAT DOES Berserker V DO?
  179.                          =========================
  180.  
  181. Berserker is a viruskiller which was designed as a CLI-command.  It works with
  182. Kick 1.2, Kick 1.3, 512K and expansion RAM.
  183.  
  184. Berserker 5.0 consists of two files, 'Berserker' and 'Berserker-Handler'.
  185. Copy 'Berserker-Handler' into the 'L:' directory if you wish to use the
  186. permament checker ( otherwise Berserker will not able to launch the handler ).
  187.  
  188. The Handler needs about 4900 bytes of memory; that should be worth it... 
  189. ( four KB for the stack and one for the program )
  190.  
  191. Because of the big number of link viruses on the Amiga, I recommend inserting
  192. the Berserker call as the third command in your startup-sequence.
  193. ( the later the better...  )
  194.  
  195. You can start Berserker V either from CLI or from Workbench.
  196.  
  197. WORKBENCH:
  198. ----------
  199.  
  200. Berserker opens a window and waits for your choice.
  201.  
  202.                    ALL OPTIONS SHOULD BE SELF-EXPLANATORY 
  203.  
  204. CLI:
  205. ----
  206.  
  207. Berserker offers you following options:
  208.  
  209.              'Berserker ?' - instructions.
  210.  
  211.              'Berserker c' - clears the cold- & coolcapture
  212.  
  213.              'Berserker i' - to install the 'Berserker-Handler'
  214.         
  215.              'Berserker r' - to remove the Handler from memory
  216.  
  217.  
  218. If you start Berserker V without any command it will start searching
  219. through memory in order to kill these little bastards.
  220.  
  221. You can combine the options 'r' or 'i' and 'c'.
  222.  
  223. If Berserker finds a virus a Recoverable Alert appears, just click a
  224. mousebutton to continue ( you will get to know the presence of a virus even
  225. if the Berserker banner message has been redirected ).
  226.  
  227. If Berserker-Handler is installed and finds 'JACK' or 'CENTURION' a
  228. Recoverable Alert appears, just click a mousebutton to continue.  I would
  229. recommend that you use 'BLVC' to check the file loaded just before the
  230. alert appeared.  BLVC 'heals' files infected by link-viruses.
  231.  
  232.  
  233.                                  LIBRARIES
  234.                                  =========
  235.  
  236. Berserker checks the following ones:
  237.  
  238.         - EXEC.LIBRARY
  239.         - EXPANSION.LIBRARY
  240.         - GRAPHICS.LIBRARY
  241.         - LAYERS.LIBRARY
  242.         - INTUITION.LIBRARY
  243.  
  244. Berserker checks these libraries in order to detect any illegal change.
  245. Programs like 'SetPatch' use the systemcall 'SETFUNCTION' to change a
  246. vector but no virus does.  Consequently, Berserker compares the original
  247. library checksum with its 'homebrewn' checksum and puts up an alert.
  248.  
  249.                      -->> ANY CHANGE IS DETECTED. <<--
  250.  
  251. If Berserker shows its little alert with 'EXEC.LIBRARY' the chance that you
  252. system has been infected by a new virus is very high!
  253.  
  254. Berserker does not repair a modified library.  The function was added only
  255. to give you an opportunity to recognize new viruses...
  256.  
  257.  
  258.                     WHICH VIRUSES DOES Berserker KNOW?
  259.                     ==================================
  260.  
  261. 1.  SCA and all its mutant brothers and sisters
  262.     -------------------------------------------
  263.     This means AEK, LSD, WARHAWK, OBELISK, PENTAGON, BAMIGA SECTOR ONE....
  264.  
  265. 2.  Byte Bandit
  266.     -----------
  267.     No need for further discussion (or what do you think?).
  268.  
  269. 3.  Byte Warrior (DASA0.2)
  270.     ----------------------
  271.     Was  the  first virus with coded text, so you couldn't recognize it on
  272.     the bootblock.
  273.  
  274. 4.  The Exterminator (LAMER!)
  275.     -------------------------
  276.     This  one  fills  the  tracks  of  a  disk  with 'LAMER!LAMER!LAMER!'.
  277.     Exterminator  is  very  tricky, if you try to examine the bootblock it
  278.     will always look like a normal one. The new  version should  find  all
  279.     versions of the LAMER-EXTERMINATOR. (that's not true... what a shame)
  280.  
  281. 5.  The IRQ-Virus
  282.     -------------
  283.     This  one  is  a  link  virus.  It looks for the second program in the
  284.     startup-sequence and tries to infect it.  If this fails it will try to
  285.     link itself to the DIR command.  WARNING!!!  Sometimes it also infects
  286.     other programs.
  287.  
  288.     If a disk is write-protected -> look for REQUESTER
  289.  
  290.     Hint  for programmers:  the IRQ-virus' vector is OLDOPENLIBRARY(-408),
  291.     therefore  always  use  OPENLIBRARY(-552).  Unfortunately the standard
  292.     Aztec  'C'  3.2a  -  5.0   crt0.a68  startup  code  makes  a  call  to
  293.     OldOpenLibrary()  to  get  access  to the dos.library.  Time for a bug
  294.     fix, Manx?
  295.  
  296. 6.  The BSG 9-Virus
  297.     ---------------
  298.     This  one  is  a  link  virus.   It looks for the first program in the
  299.     startup-sequence  and  tries to infect it.  It saves the modified file
  300.     in the DEVS directory with spaces instead of a name.  The virus itself
  301.     is  about  2608  bytes  long  and  becomes  visible after four or five
  302.     resets; the screen turns black and a message appears:
  303.  
  304.               "      A COMPUTER VIRUS IS A DISEASE     "
  305.               "       TERRORISM IS A TRANSGRESSION     "
  306.               "        SOFTWARE PIRACY IS A CRIME      "
  307.               "             THIS IS THE CURE           "
  308.               "   BSG 9  BUNDESGRENZSCHUTZ SEKTION 9   "
  309.               "          SONDERKOMMANDO 'EDV'          "
  310.  
  311. 7.  The Gadaffi-Virus
  312.     -----------------
  313.     This  one  is  a  mutant  version  of the old Byte Warrior.  It copies
  314.     itself  on  each  disk  and  tries to play a sound with the disk drive
  315.     motor  after  12  resets.  Even though you might find the music funny,
  316.     the  drive  will  be  of a different opinion (this may lead to serious
  317.     hardware failures!).
  318.  
  319. 8.  The Disk-Doctor
  320.     ---------------
  321.     This  one is a brand new one.  It allocates 12 KBytes after each reset
  322.     and  ...   to  be honest, I didn't test what it also does because this
  323.     one  was  very complicated -> before Disk-Doc I had never seen a Task,
  324.     nor  did  I know what you can do with one. I'm lucky enough to be able
  325.     to detect and kill it.
  326.    
  327.     ( By writing Memguard I got to know a lot more about tasks...)
  328.  
  329. 9.  The REVENGE BOOTLOADER
  330.     ----------------------
  331.     This  one  is  just  a  normal  virus  with  the  ASCII  text 'REVENGE
  332.     BOOTLOADER'  in  it  (not the smartest of ideas).  It looks like as if
  333.     this  one  has  no  message  in  it,  it only copies itself onto every
  334.     disk inserted.  This one is a virus of a new generation, it works with
  335.     every kickstart and with fast-memory.
  336.    
  337. 10. SYSTEM Z
  338.     --------
  339.     I wanted to add this one but a programm which asks before it copies
  340.     itself onto disk is not a virus in my eyes.
  341.  
  342. 11. REVENGE
  343.     -------
  344.     This  is  an  old  one, which at the end of the boot code contains the
  345.     following  ASCII text:  "REVENGEV1.2 COUNT:".  I had to implement this
  346.     one because Berserker III crashed when REVENGE was in memory.
  347.  
  348. 12. TIMEBOMB
  349.     --------
  350.     ARGHHHH!!   This  one  is  NOT in memory.  TIMEBOMB only tries to copy
  351.     itself  to  the  disk  in DF1:.  The next time you boot the other disk
  352.     from  DF1:   TIMEBOMB fills the whole root track with random data from
  353.     location  $20000.   After quite literally killing the disk it displays
  354.     an  alert  with  it's  stupid message.  Berserker cannot find and kill
  355.     this one since it is not in memory.  Sorry!!!  Special thanks for this
  356.     virus  must  go  to DATA BECKER.  The asshole who wrote the virus took
  357.     all routines out of AMIGA INTERN I.
  358.  
  359. 13. XENO
  360.     ----
  361.     I  can't  tell you anything about this one (I never got it).  I had to
  362.     take  the routine from STEVE TIBBET.  Some of my friends own hard disk
  363.     drives.   S.T.   says  that the Xeno spread like wildfire and infected
  364.     even  hard disks.   My friends were so frightened that, (AAARRGH!!  it
  365.     is very hard to say) I took the routine from VIRUSX4.0.
  366.  
  367. 14. Disaster-Master V2
  368.     ------------------
  369.     This  is  a link virus which is 1740 bytes long and only infects disks
  370.     with  a startup-sequence.  Disaster-Master is alway found in the first
  371.     line  as  'CLS  *' and in the 'C:' directory as the 'CLS' command.  Be
  372.     sure  to  examine  both  the  startup-sequence  script  and  the  'C:'
  373.     directory If Berserker discovers that your system has been infected by
  374.     DM  V2.   Funny  enough if launched without the asterisk ('*') the CLI
  375.     window  is  cleared.  After a few (???) resets it puts up an alert and
  376.     resets the computer.
  377.     
  378. 15. CENTURION LINK VIRUS
  379.     --------------------
  380.     This  new  virus  makes itself resident, changes DoIO & KickSum and is
  381.     always  located  at  $7f000  (some guys will - hopefully - never learn
  382.     it).   The  virus  itself  is  3916 bytes long and tries to infect the
  383.     programs  listed in the startup-sequence (what else!).  After a number
  384.     of  resets  it  changes  the  mouse  pointer  to  a smiley with a tiny
  385.     scrolling  banner  message  in  it.  I heard that you can protect your
  386.     commands  in the startup-sequence with this little trick:  change your
  387.     command line from:  'Berserker' to 'C/Berserker', etc.  Keep away from
  388.     programs  like  'new  LZ' or 'LHwarp V1.44'; they are fake and contain
  389.     the virus.
  390.  
  391.     If a disk is write-protected -> look for REQUESTER
  392.  
  393. 16. THE TRAVELING JACK
  394.     ------------------
  395.     You  can  wipe  it out with a reset (that's at least what I guess from
  396.     the  code) and changes the dos.library jump table (clever idea)!  When
  397.     installed  it  tries  to write its 'VIRUS.xx' file to disk each time a
  398.     program accesses the drive.  Be careful:  it tries to 'link' itself to
  399.     anything!
  400.     There are two diffent  versions, a normal one and a mutant.  Berserker
  401.     wipes both from memory, but doesn't  tell you whether it was the normal
  402.     or the mutant version.
  403.  
  404.     If a disk is write-protected -> look for REQUESTER
  405.  
  406.  
  407.  
  408.                                  REQUESTER
  409.                                  =========
  410.  
  411.     If a disk is write-protected the virus always brings up a standard
  412.     DOS Autorequester like this:
  413.  
  414.    +System Request ==================##|##+
  415.    |                                      |
  416.    | Volume                               |
  417.    | - Disk name -                        |
  418.    | is write protected                   |
  419.    |                                      |
  420.    | +-----+                     +------+ |
  421.    | |RETRY|                     |CANCEL| |
  422.    | +-----+                     +------+ |
  423.    +--------------------------------------* <- 'OLSEN' is not a good painter..
  424.  
  425.  
  426.  
  427.                             ADDITIONAL REMARKS
  428.                             ==================
  429.  
  430.                      Special thanks go to my friends:
  431.  
  432.                    Olaf B. for testing and ideas & help
  433.                  Michael V. for utis, viruses and testing
  434.                    Henning L. for being a helpfull coder
  435.                        Thorsten H. for tips and help
  436.         Erik L0vendahl S0rensen, watch out for the next version....
  437.  
  438.  
  439.                           «»  DON'T RESOURCE!  «»
  440.  
  441. Olsen:  Berserker was written using the well known Kuma Seka Assembler.  As
  442. an  American  user you might have never heard or seen anything of it.  Kuma
  443. did it the British way:  Seka does neither generate ALink compatible linker
  444. object  files,  nor  does  it  apply  to  the  de facto Metacomco MASM (see
  445. Developers'  toolkit) standard.  For this reason your CAPE, MASM, ASM or AS
  446. will  probably refuse to re-assemble the source code.  Calls like "MOVE 4.W
  447. A6"  will  have to be replaced by something like "MOVE 4,A6".
  448.  
  449. Ralf:   I  love  my  SEKA and i use calls like 'MOVE 4.w,a6' for speed, you
  450. C-FREAK!
  451.  
  452.  
  453.  SORRY TO ALL THE FOLKS WHO WROTE ME A LETTER AND I DIDN'T ANSWER THEM!!!
  454.     I WILL ANSWER THEM EVEN IF THEY ARE ONE YEAR OLD...  I'M SO LAZY...
  455.  
  456.  
  457. ===============================  Berserker  ==================================
  458.  
  459. IMPORTANT  NOTICE:   This program is (c) Copyright by Ralf Thanner, but can
  460. be FREELY DISTRIBUTED, providing that the following rules are respected.
  461.  
  462.   - No change is made to the program nor to the accompaning documentation.
  463.  
  464.   - Every  form  of distribution is allowed and encouraged, but no fee can
  465.     be charged for this program except for, possibly, the cost of magnetic
  466.     media.
  467.  
  468.   - The package is always distributed in its complete form consisting of 4
  469.     files:     'Berserker',   'Berserker-Handler',   'Berserker.Doc'   and
  470.     'Berserker.S'.
  471.  
  472. By  copying,  distributing  and/or  using  the  program  you  indicate your
  473. acceptance of the above rules.
  474.  
  475. ==============================================================================
  476.